Better with Kent · draft

Design Primitives Agents Can Actually Use

Systems design is the job — not prompt engineering.

create
combine
delete
expand

Reframe

The bottleneck moved

  • Models got better fast — implementation got cheaper
  • The scarce work is systems design
  • Build a playground with operations agents can safely invoke

Definition

What is a primitive?

Smallest unit of meaning your system exposes — composable without reimplementing how it works.

System Looks like Examples Without it
UI / design system Component or token Button, TextField, spacing scale Improvised styling — the UI looks bad
API / backend Resource + verb POST /orders, cancelSubscription(id) Logic reimplemented in the prompt — drifts from the system
Data Entity or relationship User, Order, OrderLineItem Ad-hoc shapes — agents guess at entities and relationships
Infra / platform Bounded operation deploy(service), rotateSecret(name) Raw shell instead of deploy + rollback
Agent / tools Callable capability Kody export, MCP tool, search, execute Browser automation, scraping, one-off bash
Events / workflows Named occurrence email.received, payment.failed Polling and tight coupling — hard to compose reactions
Auth / trust Scoped permission RBAC role, OAuth scope, publish grant God-mode keys, shared credentials, no audit trail

Four moves

Create Combine Delete Expand

Nail the right primitives — then create, combine, delete, or expand as needed.

Create

When the capability doesn't exist yet

  • Missing primitive → agent finds a workaround
  • Workarounds are broad, brittle, and hard to audit
  • Kody: community packages needed RBAC primitives first

Combine

When two things should be one

  • PayPal: three combobox components → one → downshift
  • Fewer concepts for humans and agents to reason about
  • Kody: skills + saved apps → packages

Delete

When less surface area is the win

  • Instagram: Foursquare clone → success by removing features
  • Every primitive is something an agent might call
  • Kody: pulled email handler out → simple event system

Expand

When an existing primitive is almost right

  • Kody: packages gained event subscriptions
  • Email narrowed to: emit events, packages subscribe
  • Simpler primitives that combine cleanly

Expand

Event bus shape

flowchart LR
  email["email ingress"] --> bus["event system"]
  bus --> pkgA["package A"]
  bus --> pkgB["package B"]

Delete the fat handler. Expand packages. Combine on a shared bus.

Why it works

Good primitives shrink the action space

  • Composable ops instead of improvised scripts
  • Pre-audited boundaries instead of god-mode access
  • Agents effective because the system is well-shaped

Homework

Ask your agent

"What primitives exist in this system?
What should we create, combine, delete, or expand?"

Let the agent map the playground — then you judge the shape.

Better with Kent

Durable skills for people who ship software

  • Design the system agents play in
  • Create · combine · delete · expand until the primitives are right

Subscribe · like · comment · share